package com.meritdata.cloud.data.manager.model.repository;

import com.meritdata.cloud.data.manager.model.entity.TdColumnConfig;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.query.Param;

public interface TdColumnConfigRepository extends JpaRepository<TdColumnConfig, Long>,
        QuerydslPredicateExecutor<TdColumnConfig> {

    @Modifying
    @Query("update  TdColumnConfig t set t.dictPartId=:dictPartId,t.dictPartColumnId=:dictPartColumnId where t.tableId=:tableId and t.code=:columnName")
    void updateColumnConfig(@Param("tableId") long tableId,@Param("columnName") String columnName, @Param("dictPartId")long dictPartId,@Param("dictPartColumnId") long dictPartColumnId);

    @Modifying
    @Query("update  TdColumnConfig t set t.securityLevelCode=:securityLevelCode,t.datamaskId=:datamaskId where t.tableId=:tableId and t.code=:columnName")
    void updateColumnMaskRule(@Param("tableId") long tableId,@Param("columnName") String columnName, @Param("datamaskId")long datamaskId,@Param("securityLevelCode") Integer securityLevelCode);

    @Modifying
    @Query("update  TdColumnConfig t set t.securityLevelCode = null,t.datamaskId=null where t.id=:columnConfigId ")
    void delMaskRule(@Param("columnConfigId") long columnConfigId);
}
